package com.kaifamiao.base.Demo210914;

import java.util.Arrays;
import java.util.Scanner;

/**
 * @author lucien-ma
 * @date 2021/9/14
 * @apiNote
 */
public class Demo03 {
    private static Scanner scanner = new Scanner(System.in);

    /**
     * 从键盘上输入任意个任意字母，统计元音字母a、e、i、o、u共出现多少次
     */
    public static void count() {
        System.out.println("请输入任意字符串：");
        String s = scanner.nextLine();
        int[] count = new int[5];
        int sum = 0;
        int[] wCode = new int[]{
                "a".hashCode(),"e".hashCode(),"i".hashCode(),
                "o".hashCode(),"u".hashCode()
        };
        byte[] bytes = s.getBytes();
        for (int i = 0; i < count.length; i++) {
            for (byte aByte : bytes) {
                if (wCode[i] == aByte) {
                    count[i]++;
                    sum++;
                }
            }
        }
        System.out.print("a, e, i, o, u 分别出现了：");
        System.out.println(Arrays.toString(count));
        System.out.println("总共出现了：" + sum + "次");
    }

    /**
     * 从键盘上输入一个用户名，验证用户名是否合法并输出，合法的用户名是
     * - 长度在6-20位之间
     * - 必须以大写字母开头
     * - 必须包含数字、下划线
     */
    public static void checkUserName() {
        System.out.println("请输入一个用户名：");
        String userName = scanner.nextLine();
        if (userName.length() < 20 && userName.length() > 6) {
            if (userName.substring(0, 1).matches("[A-Z]")) {
                if (userName.matches(".*[0-9]+.*")
                        && userName.matches(".*\\_+.*")) {
                    System.out.println("用户名合法");
                } else {
                    System.out.println("用户名不合法，必须包含数字、下划线");
                }
            } else {
                System.out.println("用户名非法，首字母大写");
            }
        } else {
            System.out.println("用户名非法,长度为 6~20");
        }
    }

    /**
     * 检测用户输入的单词是否是回文单词。
     * 所谓回文单词指单词倒过来与原单词一样，比如“level”、“pop”、“noon”都是回文单词
     */
    public static void isHuiWen() {
        System.out.println("请输入一个单词：");
        String s = scanner.nextLine();
        StringBuilder stringBuilder = new StringBuilder(s);
        String s2 = stringBuilder.reverse().toString();
        if (s2.equals(s)) {
            System.out.println("是回文单词");
        } else {
            System.out.println("不是回文单词");
        }
    }

    public static void main(String[] args) {
        //count();
        //checkUserName();
        isHuiWen();
    }
}
